﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace HomeWork
{
    class ContentService
    {

        /// 文章发布
        public void Release(Content content)
        {
            try
            {
                Console.WriteLine("准备发布...");
                content.Publish();
                Console.WriteLine("保存文章到数据库");
            }
            catch (ArgumentNullException ex)
            {
                // 封装原始异常到新异常，并抛出
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
                throw new InvalidOperationException("内容作者不能为空", ex);              
            }
            catch (ArgumentOutOfRangeException ex) 
            {
                // 解析异常信息中的 Reward 值（假设异常消息包含数值）
                //Console.WriteLine("求助的Reward为负数（-XX）");
                int rewardValue = ParseRewardFromException(ex);
                Console.WriteLine(ex.Message);
                Console.WriteLine(ex.StackTrace);
            }
            //Console.WriteLine(DateTime.Now.ToString("yyyy年MM月dd日 hh点mm分ss秒")+content.Id);
            Console.WriteLine();
        }


        private int ParseRewardFromException(ArgumentOutOfRangeException ex)
        {
            // 从异常消息或参数名提取 Reward 值（根据实际设计调整）
            if (ex.ParamName == "Reward" && ex.ActualValue is int reward)
                return Math.Abs(reward);
            return -1; // 默认值（实际开发应更严谨）
        }
    }
}
